// 对 axios的二次封装
// 主要是使用它的 请求拦截器 和 响应拦截器
import axios from "axios";
import nprogress from "nprogress"; //进度条
import "nprogress/nprogress.css" //引进进度条样式

const requests = axios.create({
    timeout: 5000, //代表请求超过当前时间，没有相应就结束
})

// 请求拦截器 发送请求前
requests.interceptors.request.use((config) => {
    nprogress.start() //进度条开始
    return config
})

// 响应拦截器  返回成功和失败的数据，进行回调
requests.interceptors.response.use((res) => {
    // 成功的回调函数
    // 进度条结束
    nprogress.done();
    return res.data
}, (err) => {
    // 服务器相应失败的汇报函数
    // 可以中止promise
    // return Promise.reject(new Error('faile'))
    return err
})

export default requests;